package com.evaluationSystem.controller;

import com.evaluationSystem.config.R;
import com.evaluationSystem.entity.Questionnaire;
import com.evaluationSystem.entity.dto.QuestionnaireDto;
import com.evaluationSystem.service.QuestionnaireService;
import com.evaluationSystem.util.AssertUtils;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

/**
 * 问卷控制器
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/question")
public class QuestionController {

    private final QuestionnaireService questionnaireService;

    @GetMapping("/getQuestionList")
    public R<PageInfo<Questionnaire>> getQuestionList(QuestionnaireDto questionnaireDto) {
        PageInfo<Questionnaire> questionList = questionnaireService.getQuestionList(questionnaireDto);
        return R.success(questionList);
    }

    @GetMapping("/getOwnQuestionList")
    public R<List<Questionnaire>> getOwnQuestionList(@RequestParam String mobile) {
        List<Questionnaire> questionList = questionnaireService.getOwnQuestionList(mobile);
        return R.success(questionList);
    }

    // TODO  问卷
    @GetMapping("/getInfo/{id}")
    public R<Questionnaire> getInfo(@PathVariable String id) {
        return R.success(questionnaireService.getInfo(id));
    }

    @GetMapping("/checkStatus")
    public R<HashMap<String, Integer>> checkStatus(QuestionnaireDto questionnaireDto) {
        return R.success(questionnaireService.checkStatus(questionnaireDto));
    }

    @PostMapping("/updateQuestionList")
    public R<String> updateQuestionList(@RequestBody Questionnaire questionnaireDto) {
        questionnaireService.updateQuestionList(questionnaireDto);
        return R.success("修改成功");
    }

    @PostMapping("/insertQuestion")
    public R<String> insertQuestion(@RequestBody Questionnaire questionnaireDto) {
        questionnaireService.insertQuestion(questionnaireDto);
        return R.success("新增成功");
    }

    @PostMapping("/deleteQuestion")
    public R<String> deleteQuestion(@RequestBody String[] ids) {
        AssertUtils.isArrayEmpty(ids, "id");

        questionnaireService.deleteQuestion(Arrays.asList(ids));
        return R.success("删除成功");
    }
}
